<?php
/**
* @package   auto_occasion
* @subpackage recherche
* @author    your name
* @copyright 2011 your name
* @link      http://www.yourwebsite.undefined
* @license    All rights reserved
*/

class FoFicheCtrl extends jController {

    /**
    * Fiche d'une voiture
    */
    function index() {
		
        $rep = $this->getResponse('htmlFo');
        $rep->menusActifs = frontHtmlResponse::MENU_FICHE;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_FICHE) ;
        $rep->bodyTagAttributes = array('onload'=>'onLoad()');

        jClasses::inc("accueil~GoogleMapAPI");
        jClasses::inc("annonce~annonceSrv");
        jClasses::inc('publicite~pubSrv');
  		jClasses::inc("commun~GetCaptcha") ;
  		jClasses::inc("essais~essaisSrv") ;
		jClasses::inc('commun~parametre');
		jClasses::inc('commun~toolsFile');
		jClasses::inc('commun~photoSrv');
        jClasses::inc('commun~departementSrv');

        jClasses::inc('commun~common');

        $idAnnonce		= $this->intParam('id', 0);	

        $annonce		= annonceSrv::getAll(1, $idAnnonce);
        $photo_princ	= "";
        $photo			= $photoSrc = array();

        // seul les annonces valides peuvent être consultées
        $annonceValide	= annonceSrv::checkIfValideOrNot($idAnnonce);
        $rep->body->assign('voiture', $annonce[0]);

        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/galleriffic.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/prettyPhoto/css/prettyPhoto.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/jquery-ui.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/back/css/fileuploader.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/infiniteCarousel.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/annonceDeposer.css');
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/photoUpload.css');
        
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/carousel_custom.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.galleriffic.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/prettyPhoto/js/jquery.prettyPhoto.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.idTabs.min.js');

        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/fiche_carousel.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/ddsmoothmenu.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/filter.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.iframe.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');

        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/ficheAnnonce.js');

        $rep->bodyTpl = 'recherche~FoFiche';

        /*
         * 
         * ficheAnnonce.js  : all js functions about : 
         * - envoyer annonce à un ami
         * - localiser
         * - coordonnées (GMap)
         * 
         */

        /*
         * recuperer les photos
         */
        //tester si le repertoire existe
        $trouve = false;
        $dirPath = JELIX_APP_WWW_PATH . PATH_ANNONCE_IMG . $idAnnonce;
        if (is_dir($dirPath)){
            //lister les images dans le repertoire
            if ($dh = opendir($dirPath)) {
                while (($file = readdir($dh)) !== false) {
                    $filename = $dirPath . '/'. $file;
                    $ext = explode(".", $file);
                    if (file_exists($filename) && isset($ext[1]) && toolsFile::is_image($ext[1])) {
                        // formation de l'objet photo
                        $images = new stdClass();
                        $images->photo_name = PATH_ANNONCE_IMG . $idAnnonce . '/' . $file;
                        $photo[] = $images;
                        $imgPath = "";
                        $trouve = true;
                    }
                }
                closedir($dh);
            }
        }

        if($trouve) {
            $photo_princ			= $photo[0]->photo_name;
            $rep->body->assign('photoOccasion', $photo[0]->photo_name);
            $rep->body->assign('fimage', 1);
        }
        
        if($annonce[0]->IdOccasion){
            $photoSrc				= annonceSrv::getPhotoAnnonce($annonce[0]->IdOccasion);
        }
        if(sizeof($photoSrc) > 0){
            $photo = array_merge($photo, $photoSrc);
        }
        
        if(($photo_princ == '') && (sizeof($photoSrc) > 0)){
            $photo_princ			= $photoSrc[0]->photo_name;
        }

        // si venant du formulare de contact
        $contact					= $this->intParam('contact', 0);

        // corrompu
        $messageCorrompu			= ($contact == 3) ? parametre::get(PARAM_INTERNAUTE_INTERDIT_ENVOI_AMI) : common::init('ao_parametre');

        // captcha
        $captchaPath				= $GLOBALS['gJConfig']->urlengine["basePath"]. "captcha/temp/" . GetCaptcha::getCaptchaImg () . ".jpg" ;

        //xml pour le header : title, desc, keywords
        $headerContent				= common::readXml(PATH_XML_FICHE_ANNONCE);

        $headerContent->title		= str_replace("{_MARQUE}", isset($annonce[0]->marque_libelle)?$annonce[0]->marque_libelle:'', $headerContent->title);
        $headerContent->title		= str_replace("{_MODELE}", isset($annonce[0]->modele_libelle)?$annonce[0]->modele_libelle:'', $headerContent->title);
        $headerContent->title		= str_replace("{_VERSION}",isset($annonce[0]->Occas_Version)?$annonce[0]->Occas_Version:'', $headerContent->title);
		
		$headerContent->desc		= str_replace("{_MARQUE}", isset($annonce[0]->marque_libelle)?$annonce[0]->marque_libelle:'', $headerContent->desc);
        $headerContent->desc		= str_replace("{_MODELE}", isset($annonce[0]->modele_libelle)?$annonce[0]->modele_libelle:'', $headerContent->desc);
        $headerContent->desc		= str_replace("{_VERSION}",isset($annonce[0]->Occas_Version)?$annonce[0]->Occas_Version:'', $headerContent->desc);
        // change le header de la page en cours
        $rep->title					=	isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords	=	isset($headerContent->keywords)?$headerContent->keywords:'' ;
		$headerContent->desc		=	isset($headerContent->desc)?$headerContent->desc:'' ;
		$keywords					= "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
		$description				= "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---  
        $annonce[0]->marque_logo		= ($annonce[0]->marque_logo) ? str_replace("media/marques/", "media/marques/fiches/", $annonce[0]->marque_logo): $annonce[0]->marque_logo;
        $annonce[0]->marque_logo_petit	= ($annonce[0]->marque_logo) ? str_replace("media/marques/fiches/", "media/marques/fiches/vignettes/", $annonce[0]->marque_logo): $annonce[0]->marque_logo;
        
        // récupération des équipements
        $equipement = ($annonce[0]->IdOccasion) ? annonceSrv::groupEquipementByCateg(annonceSrv::getEquipementAnnonce($annonce[0]->IdOccasion)) : array();

        // bloc info en plus - liste des essais pour le modele
        $critere			= new stdClass();
        $critere->marqueId	= $annonce[0]->Occas_Marque;
        $critere->modeleId	= $annonce[0]->Occas_Modele;

        $essais				= essaisSrv::getEssaiByCritere($critere);

        //navigation : precédenete suivante
        $page				= new stdClass();
        if (isset($_SESSION['SESS_ANNONCE_IDS'])) {
            $ids = unserialize($_SESSION['SESS_ANNONCE_IDS']);
            $key = array_keys($ids, $idAnnonce);
            $page->prec = (is_array($ids) && isset($ids[((int)$key[0] - 1)])) ? $ids[((int)$key[0] - 1)] : 0;
            $page->suiv = (is_array($ids) && isset($ids[((int)$key[0] + 1)])) ? $ids[((int)$key[0] + 1)] : 0;
        } else {
            //on n'affiche pas la barre de navigation
            $page->prec = 0;
            $page->suiv = 0;
        }
        
        // fichier image venant du partenaire
        $fichierDistant      = $annonce[0]->Occas_Fimage;
        $annonce[0]->distant = 0;
        if (preg_match('/http/i', $fichierDistant)) {
            $annonce[0]->distant = (@fopen($fichierDistant, "r")) ? 1 : 0;
        }
		
		
        $rep->body->assign('annonce', $annonce[0]);
        $rep->body->assign('photo', $photo);
        $rep->body->assign('photo_princ', $photo_princ);
        $rep->body->assign('equipement', $equipement);
        $rep->body->assign('contact', $contact);
        $rep->body->assign('captchaPath', $captchaPath);
        $rep->body->assign('page', $page);
        $rep->body->assign('essais', $essais);
        $imgPath = PHOTO_ANNONCE_PATH;
        $rep->body->assign('imgPath', $imgPath);
        $rep->body->assign('messageCorrompu', $messageCorrompu);

        //pubHidden et rightContent
        $paramPub = array('p1'=>PUB_RIGHT_1_ID,'p2'=>PUB_RIGHT_2_ID,'p3'=>PUB_RIGHT_3_ID,'p4'=>PUB_RIGHT_4_ID,'p5'=>PUB_RIGHT_5_ID,'p6'=>PUB_RIGHT_6_ID);
        $rep->body->assignZone('oZonePubHidden', 'commun~FoPubHidden',$paramPub);

        $rep->body->assignZone('oZoneRightContent', 'commun~FoRightContent');

        //---
        // google map
        $map = new GoogleMapAPI('map');
        // enter YOUR Google Map KeyoZ 
        
        $map->setAPIKey(GOOGLE_MAP_API_KEY_DEV);
        //taille de la map
        $map->setHeight("800");
        $map->setWidth("360");
        //on desactive la barre de coté?
        $map->disableSidebar();
        //DesActive les  boutons(map/satellite/hybrid).
        $map->disableTypeControls();
        //Quel est le type de carte par defaut ? (map/satellite/hybrid)
        $map->setMapType('map'); // default
        $map->setZoomLevel(12); // zoom
        //On déssactive les boutons pour afficher la direction d'un point a l'autre
        $map->disableDirections();
        // Permet de definir le zoom automatiquement afin de voir tous les marqueurs d'un coup.
        $map->disableZoomEncompass();
        //Active la mini map en bas a droite
        //$map->enableOverviewControl();
        //permet de définir l'icone sur la map, nous on change pas
        //$map->setMarkerIcon('http://www.canadianwinter.ca/uploads/icon/marker_cw.png','http://www.canadianwinter.ca/uploads/icon/marker_cw_shadow.png',6,20,10,1);
 
        //CREATION DES MARQUEURS
        //on peut egalement utiliser addMarkerByCoords() si on a déj�  la latitude et longitude des points
        //Exemple basique
       // create some map markers
        $coords = departementSrv::getCoords($annonce[0]->departement_num);
        if(sizeof($coords)) {
            $map->setCenterCoords($coords[0]->longitude, $coords[0]->latitude);
            if (sizeof($photo)) {
                $imgP = 'http://' . $_SERVER['SERVER_NAME'] . '/' . $GLOBALS['gJConfig']->urlengine["basePath"] . PHOTO_ANNONCE_PATH . $photo[0]->photo_name;
            } else if($annonce[0]->marque_logo) {
                $imgP = 'http://' .$_SERVER['SERVER_NAME'] . '/' . $GLOBALS['gJConfig']->urlengine["basePath"] . $annonce[0]->marque_logo_petit;
            } else {
                $imgP = 'http://' .$_SERVER['SERVER_NAME'] . '/' . $GLOBALS['gJConfig']->urlengine["basePath"] . 'design/front/images/no-image-home2.jpg';
            }
            $map->addMarkerByCoords($coords[0]->longitude, $coords[0]->latitude,'<div style="width:110pt;"><a href='.jUrl::get("recherche~FoFiche:index", array('id'=>$annonce[0]->IdOccasion)).'>' . $annonce[0]->marque_libelle . ' ' . $annonce[0]->modele_libelle  . ' ' . $annonce[0]->Occas_Version . '</a><br /><img style="margin:5px;" width=59 src="'.$imgP.'" alt=""/><div style="float:right;">'.$annonce[0]->Occas_Millesime.'<br />'.$annonce[0]->Occas_Kilometrage.' km<br />'.$annonce[0]->Occas_Prix.' €<br /></div></div>');
            
        }
        
        // LIEN CR2DIT AUTO
        $creditLink = parametre::get(PARAM_LINK_CREDIT_AUTO);
        $rep->body->assign('annonceValide', $annonceValide);
        $rep->body->assign('creditLink', $creditLink);
        $rep->body->assign('google_map_header',$map->getHeaderJS());
        $rep->body->assign('google_map_js',$map->getMapJS());
        $rep->body->assign('google_map',$map->getMap());
        $check = (isset($_SESSION['SESS_zCaptchaControl'])) ? $_SESSION['SESS_zCaptchaControl'] : "";
        $rep->body->assign('check',$check);

        return $rep;
    }

    /**
    * imprimer l'annonce
    */
    function printAnnonce() {
        $rep = $this->getResponse('htmlFo');
        $rep->menusActifs = frontHtmlResponse::MENU_FICHE;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_FICHE) ;

        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/galleriffic.css');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.idTabs.min.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.galleriffic.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/popup.js');
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/ficheAnnonce.js');
		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');

        jClasses::inc("accueil~GoogleMapAPI");
        jClasses::inc("annonce~annonceSrv");
        jClasses::inc('publicite~pubSrv');
  		jClasses::inc("commun~GetCaptcha") ;
  		jClasses::inc("essais~essaisSrv") ;
		jClasses::inc('commun~parametre');
		jClasses::inc('commun~toolsFile');
		jClasses::inc('commun~photoSrv');

        jClasses::inc('commun~common');

        $idAnnonce = $this->intParam('id', 0);	
        $imgPath = PHOTO_ANNONCE_PATH;

        if ($idAnnonce) {
           
            $annonce = annonceSrv::getAll(1, $idAnnonce);
            // récupération des photos
            $photo = ($annonce[0]->IdOccasion) ? annonceSrv::getPhotoAnnonce($annonce[0]->IdOccasion) : array();
            
              

            // si pas de photo en base, on essaie de réupérer les images dals le repo : /datas/annonce/$id_annonce
            
            if (!sizeof($photo)) {
                //tester si le repertoire existe
                $dirPath = JELIX_APP_WWW_PATH . PATH_ANNONCE_IMG . $idAnnonce;
                if (is_dir($dirPath)){
                    //lister les images dans le repertoire
                    if ($dh = opendir($dirPath)) {
                        while (($file = readdir($dh)) !== false) {
                            $filename = $dirPath . '/'. $file;
                            $ext = explode(".", $file);
                            if (file_exists($filename) && isset($ext[1]) && toolsFile::is_image($ext[1])) {
                                // formation de l'objet photo
                                $images = new stdClass();
                                
                               
                                $images->photo_name = PATH_ANNONCE_IMG . $idAnnonce . '/' . $file;
                                $photo[] = $images;
                                $imgPath = "";
                            }
                        }
                        closedir($dh);
                    }
                }
            } else {
                $tampon = array();
                foreach ($photo as $thumb) {
                    $path = JELIX_APP_WWW_PATH . PHOTO_ANNONCE_PATH . $thumb->photo_name;
                    $obj = new stdClass();
                    $obj->photo_name = (is_file($path)) ? $thumb->photo_name : "";
                    $tampon[] = $obj;
                }
                $photo = $tampon;
            }

            // récupération des équipements
            $equipement = ($annonce[0]->IdOccasion) ? annonceSrv::groupEquipementByCateg(annonceSrv::getEquipementAnnonce($annonce[0]->IdOccasion)) : array();

            // bloc info en plus - liste des essais pour le modele
            $critere = new stdClass();
            $critere->marqueId = $annonce[0]->Occas_Marque;
            $critere->modeleId = $annonce[0]->Occas_Modele;

            $essais = essaisSrv::getEssaiByCritere($critere);


            //navigation : precédenete suivante
            $page = new stdClass();
            if (isset($_SESSION['SESS_ANNONCE_IDS'])) {
                $ids = unserialize($_SESSION['SESS_ANNONCE_IDS']);
                $key = array_keys($ids, $idAnnonce);
                $page->prec = (isset($ids[((int)$key[0] - 1)])) ? $ids[((int)$key[0] - 1)] : 0;
                $page->suiv = (isset($ids[((int)$key[0] + 1)])) ? $ids[((int)$key[0] + 1)] : 0;
            } else {
                //on n'affiche pas la barre de navigation
                $page->prec = 0;
                $page->suiv = 0;
            }
        }
        // si venant du formulare de contact
        $contact = $this->intParam('contact', 0);


        // captcha
        $captchaPath = $GLOBALS['gJConfig']->urlengine["basePath"]. "captcha/temp/" . GetCaptcha::getCaptchaImg () . ".jpg" ;

        //xml pour le header : title, desc, keywords
        $headerContent = common::readXml(PATH_XML_FICHE_ANNONCE);

        $headerContent->title = str_replace("{_MARQUE}", $annonce[0]->marque_libelle, $headerContent->title);
        $headerContent->title = str_replace("{_MODELE}", $annonce[0]->modele_libelle, $headerContent->title);
        $headerContent->title = str_replace("{_VERSION}", $annonce[0]->Occas_Version, $headerContent->title);

        $headerContent->desc = str_replace("{_MARQUE}", $annonce[0]->marque_libelle, $headerContent->desc);
        $headerContent->desc = str_replace("{_MODELE}", $annonce[0]->modele_libelle, $headerContent->desc);
        $headerContent->desc = str_replace("{_VERSION}", $annonce[0]->Occas_Version, $headerContent->desc);
        // change le header de la page en cours
        $rep->title     = $headerContent->title;
        $keywords       = "<meta name='keywords' content='" . $headerContent->keywords . "'>" ;
        $description    = "<meta name='Description' content='" . $headerContent->desc. "'>" ;
        $rep->addHeadContent($keywords);
        $rep->addHeadContent($description);
        // ---

        $annonce[0]->marque_logo = ($annonce[0]->marque_logo) ? str_replace("media/marques/", "media/marques/fiches/", $annonce[0]->marque_logo): $annonce[0]->marque_logo;
        $annonce[0]->marque_logo_petit = ($annonce[0]->marque_logo) ? str_replace("media/marques/fiches/", "media/marques/fiches/vignettes/", $annonce[0]->marque_logo): $annonce[0]->marque_logo;

        $rep->bodyTpl = 'recherche~FoFicheForPrint';
        $rep->body->assign('annonce', $annonce[0]);
        $rep->body->assign('photo', $photo);
        $rep->body->assign('equipement', $equipement);
        $rep->body->assign('contact', $contact);
        $rep->body->assign('captchaPath', $captchaPath);
        $rep->body->assign('page', $page);
        $rep->body->assign('essais', $essais);
        $rep->body->assign('imgPath', $imgPath);
        
       
        // google map
        $map = new GoogleMapAPI('map');
		// enter YOUR Google Map Key
		
		$map->setAPIKey(GOOGLE_MAP_API_KEY_DEV);
		//taille de la map
		$map->setHeight("300");
		$map->setWidth("350");
		//on desactive la barre de coté?
		$map->disableSidebar();
		//DesActive les  boutons(map/satellite/hybrid).
		$map->disableTypeControls();
		//Quel est le type de carte par defaut ? (map/satellite/hybrid)
		$map->setMapType('map'); // default
		$map->setZoomLevel(9); // zoom
		//On déssactive les boutons pour afficher la direction d'un point a l'autre
		$map->disableDirections();
		// Permet de definir le zoom automatiquement afin de voir tous les marqueurs d'un coup.
		//$map->enableZoomEncompass();
		//Active la mini map en bas a droite
		$map->enableOverviewControl();
		//permet de définir l'icone sur la map, nous on change pas
		//$map->setMarkerIcon('http://www.canadianwinter.ca/uploads/icon/marker_cw.png','http://www.canadianwinter.ca/uploads/icon/marker_cw_shadow.png',6,20,10,1);
 
        //CREATION DES MARQUEURS
        //on peut egalement utiliser addMarkerByCoords() si on a déj�  la latitude et longitude des points
        //Exemple basique
       // create some map markers
        
        $map->addMarkerByAddress($annonce[0]->region , $annonce[0]->Vendeur_Prenom . ' ' . $annonce[0]->Vendeur_Nom);
            
        $rep->body->assign('google_map_header',$map->getHeaderJS());
        $rep->body->assign('google_map_js',$map->getMapJS());
        $rep->body->assign('google_map',$map->getMap());
        $check = (isset($_SESSION['SESS_zCaptchaControl'])) ? $_SESSION['SESS_zCaptchaControl'] : "";
        $rep->body->assign('check',$check);


        return $rep;
    }
    
    /**
     * Enregistre l'acheteur et  envoi un mail au vendeur
     */
    function saveAcheteur() {
        jClasses::inc("annonce~acheteurSrv");
        jClasses::inc("commun~common");
        jClasses::inc("commun~messageEnregistre");
        jClasses::inc("commun~injectionSrv");
        jClasses::inc('commun~paysSrv');
        jClasses::inc('commun~parametre');

        $acheteur = common::init('ao_acheteur');
        $acheteur->marqueId = $this->intParam('marque', 0);
        $acheteur->modeleId = $this->intParam('modele', 0);
        $acheteur->mail     = $this->stringParam('email', '');
        
        $dest = new stdClass();
        $dest->adress = $this->stringParam('email_dest', '');
        

        if ($acheteur->mail && $acheteur->marqueId && ($dest->adress == '')) {
            acheteurSrv::ajouter($acheteur);
        }
        
        // envoi du mail au vendeur
        $vendeur = new stdClass();
        $vendeur->adress        = $this->stringParam('email', '');
        $vendeur->nom           = $this->stringParam('nom', '');
        $vendeur->prenom        = $this->stringParam('prenom', '');
        $vendeur->tel           = $this->stringParam('tel', '');
        $vendeur->message       = $this->stringParam('message', '') . '<br /><br />' .$this->stringParam('url', '');
        $vendeur->vendeurMail   = $this->stringParam('vendeurMail', '');
        $vendeur->part_code     = $this->stringParam('part_code', '');
        $vendeur->idAnnnonce    = $this->intParam('idAnnnonce', 0);
        
        
        $params = array();
        $params['id'] = $this->intParam('idAnnnonce');
        
        $corrompu = false;
        // Enregistrer tous les mails envoyés dans : ao_message_enregistre
        $occasion = common::chargeParId($vendeur->idAnnnonce, 'ao_voiture_occasion');
        $messateToStore = jDao::createRecord("commun~ao_message_enregistre");
        $messateToStore->courriel_envoyeur      = $vendeur->adress;
        $messateToStore->courriel_destinataire  = ($dest->adress == '') ? $vendeur->adress : $dest->adress;
        $messateToStore->nom                    = $vendeur->nom;
        $messateToStore->prenom                 = $vendeur->prenom;
        $messateToStore->message                = $vendeur->message;
        $messateToStore->marque                 = $occasion->Occas_Marque;
        $messateToStore->modele                 = $occasion->Occas_Modele;
        $messateToStore->carburation            = $occasion->Occas_Carburation;
        $messateToStore->prix                   = $occasion->Occas_Prix;
        $messateToStore->departement            = $occasion->Occas_Departement;
        $messateToStore->ip                     = injectionSrv::getIp();
        $messateToStore->localisation           = injectionSrv::getLocalisation();

        $idMessage = messageEnregistre::add($messateToStore);
        
        // Rechercher si le texte contient un des pays “interdits”
        $interdit     = paysSrv::interdit();

        if (sizeof($interdit)) {
            $query = "";
            foreach ($interdit as $j=>$temp) {
                $sep    = ($j)? "," : "";
                $query .= $sep . "'".$temp."'";
            }
            $countryNames = paysSrv::interditByCode($query);
            if (sizeof($countryNames)) {
                foreach ($countryNames as $item) {
                    if (preg_match("/$item/i", $messateToStore->message)) {
                        $corrompu = true;
                        break;
                    }
                }
            }
        }

        if (!$corrompu) {
            // Vérifier si l’ip de l’envoyeur provient d’un des pays "interdits"
            $allowedCountry = injectionSrv::isAllowed();
            $corrompu       = ($allowedCountry) ? false : true;
        }

        if (!$corrompu) {
            // Rechercher le nombre de mails envoyés par l’envoyeur dans le mois. Si le nombre de mails envoyés dépassent X
            $nbMail         = messageEnregistre::countMail($messateToStore->courriel_envoyeur);
            $authorizedMail = parametre::get(PARAM_MAX_NB_MAIL_CONTROLE_FORMULAIRE);
            $corrompu       = ($nbMail > $authorizedMail->param_content) ? true : false;

        }

        if (!$corrompu) {
            // Rechercher le nombre de mails ayant le même contenu et le même envoyeur.
            $nbMail_         = messageEnregistre::countMail($messateToStore->courriel_envoyeur, true);
            $authorizedMail_ = parametre::get(PARAM_MAX_NB_MAIL_CONTROLE_FORMULAIRE);
            $corrompu       = ($nbMail_ > $authorizedMail_->param_content) ? true : false;

        }

        // si au moins un condition vérifiée : update champ corrompu , ne pas envoyer le mail => message d'erreur => PARAM_INTERNAUTE_INTERDIT_ENVOI_AMI
        if ($corrompu) {
            $params['contact'] = 3;
            messageEnregistre::setCorrompu($idMessage);
        } else {
            // envoyer un mail au vendeur et une copie est envoyée au site partenaire si mail pour vendeur
            if ($dest->adress == ''){
                if ($vendeur->part_code == "aus-g") {
                    acheteurSrv::transitMail($vendeur);
                } else if(filter_var($vendeur->vendeurMail, FILTER_VALIDATE_EMAIL)) {
                    acheteurSrv::sendMail($vendeur);
                }
                $params['contact'] =  1;
            } else {
                acheteurSrv::sendMailToFriend($vendeur,$dest);
                $params['contact'] =  2;
            }
        }

        $rep = $this->getResponse('redirect');
        $rep->action = 'recherche~FoFiche:index';
        $rep->params = $params;

        return $rep;
    }

    /**
	* Vérification du captcha
	*
	*/
	function checkCaptcha (){

		$oRep = $this->getResponse ("json") ;
		jClasses::inc ("commun~GetCaptcha") ;

		$zCaptchaToCheck = $this->stringParam ("captcha", "") ;

		$oRep->data = GetCaptcha::verifyCaptcha ($zCaptchaToCheck) ? 1 : 0 ;

		return $oRep ;
	}


    /**
	* get the number of x last essais
	*
	*/
	function xLastEssais (){
        
        $rep = $this->getResponse ("htmlFo") ;
        $rep->menusActifs = frontHtmlResponse::MENU_LAST_ESSAIS;
        $rep->breadCrumb  = array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_LAST_ESSAIS) ;

  		$rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js');

		jClasses::inc ("annonce~annonceSrv") ;
		jClasses::inc ("commun~parametre") ;

        $xLastEssais  = parametre::get(X_LAST_ESSAIS);

        $essais = annonceSrv::getLastEssais($xLastEssais->param_content);

        $rep->bodyTpl = 'recherche~FoDerniereEssais';

        $rep->body->assign('essaisLast',$essais);
        $rep->body->assign('xLastEssais',$xLastEssais);

        //pubHidden et rightContent
        $paramPub = array('p1'=>PUB_RIGHT_1_ID,'p2'=>PUB_RIGHT_2_ID,'p3'=>PUB_RIGHT_3_ID,'p4'=>PUB_RIGHT_4_ID,'p5'=>PUB_RIGHT_5_ID,'p6'=>PUB_RIGHT_6_ID, 'ad'=>'1', 'no_need_cc2'=>'1');
        $rep->body->assignZone('oZonePubHidden', 'commun~FoPubHidden',$paramPub);
        

        $rep->body->assignZone('oZoneRightContent', 'commun~FoRightContent', $paramPub);
        //---

		return $rep ;
	}

}